<template>
    <div>
        <h4>- 函数参数的默认值，可以与解构语法一起使用</h4>
        <p>定义了默认值的参数，应该是函数的尾参数，这样做更有意义；函数的 length 属性 将不计入设置了默认值的参数个数以及设置了默认的参数之后的参数个数 也不含rest参数</p>
        <p>一旦设置了参数的默认值，函数进行声明初始化时，参数会形成一个单独的作用域，等到初始化结束，这个作用域就会消失。这种语法行为，在不设置参数默认值时，是不会出现的。</p>
        <h4>- rest 参数</h4>
        <p>rest 参数搭配的变量是一个数组，该变量将多余的参数放入数组中。rest 参数只能是最后一个参数</p>
        <code>function(...arg) //arg是一个真正的数组 ；function(a, b, ...c)</code>
        <h4>- 只要函数参数使用了默认值、解构赋值、或者扩展运算符，那么函数内部就不能显式设定为严格模式；name属性返回函数名</h4>
        <h4>- 箭头函数 没有自己的this 而是引用外层的this</h4>
        <code>最简单的形式： var f = v => v;</code>
        <p>函数体内的this对象，就是定义时所在的对象，而不是使用时所在的对象；不可以当作构造函数和Generator 函数；不能使用arguments</p>
        <h4>- 尾调用 某个函数的最后一步是调用另一个函数 不含其他操作 这样永远不会发生尾调用帧溢出 严格模式可用；柯里化 多参数的函数转换成单参数的形式</h4>
        <p>尾调用优化 正常模式下 把递归 转成循环执行</p>
        <h4>- 函数参数与数组和对象的尾逗号规则，保持一致了 都允许</h4>
        <h4>- Function.prototype.toString() 返回函数代码本身 包括注释和空格</h4>
        <h4>- 允许try...catch语句省略参数</h4>
    </div>
</template>

<script>
export default {
    
}
</script>

<style scoped>

</style>